
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Jobson,
 */
public class CadastroAluno extends javax.swing.JInternalFrame {

    /**
     * Creates new form CadastroAluno
     */
    public CadastroAluno() {
        initComponents();
        cBoxCursos.setModel(new DefaultComboBoxModel(Caderneta.getCursos()));
        cBoxCursos.setSelectedIndex(-1);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        panel = new javax.swing.JPanel();
        cBoxCursos = new javax.swing.JComboBox();
        cBoxPeriodo = new javax.swing.JComboBox();
        campoAno = new javax.swing.JFormattedTextField();
        campoNome = new javax.swing.JTextField();
        botaoCadastrar = new javax.swing.JToggleButton();

        setClosable(true);
        setTitle("Cadastrar Aluno");

        labelNome.setText("Nome:");

        labelAnoI.setText("Ano de Ingresso:");

        labelCurso.setText("Curso:");

        labelPeriodo.setText("Período:");

        cBoxCursos.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "101 Agroindústria", "102 Agronomia", "103 Licenciatura em Ciências Agrárias", "104 Zootecnia", "105 Medicina Veterinária", "106 Agroecologia", "107 Tecnologia de Alimentos", "108 Tecnologia de Alimentos", "109 Tecnologia em Produção Sucroalcooleira", "110 Tecnologia em Produção Sucroalcooleira", "201 Ciências Biológicas (Lic.) ", "202 Ciências Biológicas (Lic.)", "203 Educação Física (Lic.)", "204 Enfermagem", "205 Farmácia", "206 Fisioterapia", "207 Medicina", "208 Nutrição", "209 Odontologia", "210 Ciências Biológicas (Lic.)", "211 Ecologia", "212 Ciências Biológicas (Bach.)", "213 Educação Física (Bach.)", "214 Fonoaudiologia", "215 Terapia Ocupacional ", "216 Ciências Biológicas (Bach.) ", "217 Biotecnologia", "301 Arquitetura e Urbanismo", "302 Ciências da Computação (Bach.)", "303 Engenharia Civil", "304 Engenharia de Alimentos ", "305 Engenharia de Produção Mecânica ", "306 Engenharia Mecânica", "307 Estatística ", "308 Física (Bach)", "309 Física (Lic.)", "310 Matemática (Lic.)", "311 Matemática (Lic.) ", "312 Química (Lic.)", "313 Química (Lic.)", "314 Química Industrial", "317 Ciências da Computação (Lic.)", "318 Design (Bach.)", "319 Matemática (Lic.)", "320 Sistemas de Informação (Bach.)", "321 Química (Bach.) ", "322 Engenharia Ambiental", "323 Engenharia Elétrica", "324 Engenharia de Materiais", "325 Engenharia Química", "326 Engenharia de Produção", "327 Engenharia de Computação", "328 Matemática (Bach.)", "330 Matemática Computacional (Bach)", "331 Química (Bach.)", "332 Química (Lic.) ", "333 Engenharia de Energias Renováveis ", "401 Administração ", "402 Administração", "403 Administração", "404 Administração", "405 Biblioteconomia", "406 Ciências Contábeis", "407 Ciências Contábeis", "408 Ciências Econômicas", "409 Ciências Econômicas", "410 Ciências Sociais (Bach.)", "411 Comunicação Social - Jornalismo", "412 Comunicação Social – Rel. Públicas", "413 Comunicação Social - Radialismo", "414 Direito", "416 Direito", "419 Filosofia (Lic.)", "420 Geografia (Bach.)", "421 Geografia (Bach.)", "422 História (Lic.)", "423 História (Lic.)", "424 Letras – Português (Lic.)", "425 Letras – Português (Lic.)", "427 Pedagogia (Lic.) ", "428 Pedagogia (Lic.) ", "429 Pedagogia (Lic.)", "430 Psicologia – ", "431 Serviço Social", "432 Serviço Social", "433 Turismo ", "436 Antropologia (Bach.)", "438 Hotelaria (Bach.)", "439 Ciências Contábeis ", "440 Secretariado Executivo Bilíngue (Bach.)", "443 Letras – Inglês (Lic.)", "444 Letras – Inglês (Lic.) ", "445 Letras - Espanhol (Lic.) ", "446 Letras – Francês (Lic.) ", "447 Letras – Francês (Lic.) ", "448 Pedagogia (Lic.) ", "449 Pedagogia (Lic.)", "450 Ciências Sociais (Lic.)", "451 Pedagogia (Lic.)", "452 Arquivologia (Bach.)", "454 Letras – L. Clássicas (Grego e Latim)", "457 Direito ", "458 Direito", "459 Língua Estrangeira aplicada a Negociações Internacionais (Bach.)", "460 Pedagogia – Área de Aprofundamento: Educação do Campo (Lic.)", "461 Psicopedagogia (Bach.)", "462 Relações Internacionais (Bach.)", "463 Relações Internacionais (Bach.)", "465 Comunicação em Mídias Digitais (Bach.)", "466 Tradução (Bach.)", "467 Tecnologia em Gestão Pública ", "468 Tecnologia em Gestão Pública ", "471 Ciências Atuariais", "472 Ciências Atuariais", "473 Filosofia (Bach.)", "474 Psicopedagogia (Bach.) ", "475 Ciências das Religiões (Bach.)", "476 Cinema e Audiovisual (Bach.) ", "477 Letras – Português (Lic.) ", "478 Gastronomia (Bach.)", "501 Artes Visuais (Lic.) ", "502 Música (Bacharelado)", "503 Música (Lic.)", "505 Teatro (Bach.)", "506 Artes Visuais (Bach.)", "507 Dança (Lic.)" }));
        cBoxCursos.setSelectedIndex(-1);

        cBoxPeriodo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1º", "2º" }));
        cBoxPeriodo.setSelectedIndex(-1);

        try {
            campoAno.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }

        botaoCadastrar.setText("Cadastrar");
        botaoCadastrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoCadastrarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout panelLayout = new javax.swing.GroupLayout(panel);
        panel.setLayout(panelLayout);
        panelLayout.setHorizontalGroup(
            panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(panelLayout.createSequentialGroup()
                        .addComponent(labelNome)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoNome))
                    .addGroup(panelLayout.createSequentialGroup()
                        .addComponent(labelCurso)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(cBoxCursos, 0, 1, Short.MAX_VALUE))
                    .addGroup(panelLayout.createSequentialGroup()
                        .addComponent(labelAnoI)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoAno, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(labelPeriodo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(cBoxPeriodo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(botaoCadastrar, javax.swing.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE)))
                .addContainerGap())
        );
        panelLayout.setVerticalGroup(
            panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(labelNome)
                    .addComponent(campoNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(labelCurso)
                    .addComponent(cBoxCursos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(labelAnoI)
                    .addComponent(cBoxPeriodo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(campoAno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(labelPeriodo)
                    .addComponent(botaoCadastrar))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void botaoCadastrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botaoCadastrarActionPerformed
        // TODO add your handling code here:
        String nome = campoNome.getText();
        String ano = campoAno.getText();
        int periodo = cBoxPeriodo.getSelectedIndex() + 1;
        if(nome.isEmpty() || cBoxCursos.getSelectedIndex() == -1 || ano.isEmpty() || periodo == 0){
            JOptionPane.showMessageDialog(this, "Preencha todos os campos");
        }else{
            String curso = Caderneta.getCursos()[cBoxCursos.getSelectedIndex()];
            int sequencial = Caderneta.getSequencial();
            Caderneta.incrementaSequencial();
            String seq;
            if(sequencial < 10){
                seq = "00" + Integer.toString(sequencial);
            }else if(sequencial < 100){
                seq = "0" + Integer.toString(sequencial);
            }else{
                seq = Integer.toString(sequencial);
            }
            String matricula = ano.substring(2) + periodo + curso.substring(0, 3) + seq;
            Aluno aluno = new Aluno(nome, matricula, curso, Integer.parseInt(ano), periodo);
            Caderneta.getAlunos().add(aluno);
            limpaCampos();
            JOptionPane.showMessageDialog(this, "Aluno Cadastrado\nMatricula: " + matricula + "\n" + curso);
        }
    }//GEN-LAST:event_botaoCadastrarActionPerformed
    
    public void limpaCampos(){
        campoNome.setText("");
        campoAno.setText("");
        cBoxCursos.setSelectedIndex(-1);
        cBoxPeriodo.setSelectedIndex(-1);
    }
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JToggleButton botaoCadastrar;
    private javax.swing.JComboBox cBoxCursos;
    private javax.swing.JComboBox cBoxPeriodo;
    private javax.swing.JFormattedTextField campoAno;
    private javax.swing.JTextField campoNome;
    private final javax.swing.JLabel labelAnoI = new javax.swing.JLabel();
    private final javax.swing.JLabel labelCurso = new javax.swing.JLabel();
    private final javax.swing.JLabel labelNome = new javax.swing.JLabel();
    private final javax.swing.JLabel labelPeriodo = new javax.swing.JLabel();
    private javax.swing.JPanel panel;
    // End of variables declaration//GEN-END:variables
}
